dceaa4af002ded97aca57a3c2483d4b241095c09,ground-core/src/main/java/edu/berkeley/ground/api/models/gremlin/GremlinRichVersionFactory.java,GremlinRichVersionFactory,insertIntoDatabase,#GroundDBConnection#String#Optional#Optional#Optional#Optional#,39
Before Change
versionVertex.property("reference", reference.get());
}
if (tags.isPresent()) {
for (String key : tags.get().keySet()) {
Tag tag = tags.get().get(key);
List<DbDataContainer> tagInsertion = new ArrayList<>();
tagInsertion.add(new DbDataContainer("id", GroundType.STRING, id));
tagInsertion.add(new DbDataContainer("tkey", GroundType.STRING, key));
tagInsertion.add(new DbDataContainer("value", GroundType.STRING, tag.getValue().map(Object::toString).orElse(null)));
tagInsertion.add(new DbDataContainer("type", GroundType.STRING, tag.getValueType().map(Object::toString).orElse(null)));
Vertex tagVertex = connection.addVertex("Tag", tagInsertion);
connection.addEdge("TagConnection", versionVertex, tagVertex, new ArrayList<>());
After Change
public void insertIntoDatabase(GroundDBConnection connectionPointer,
String id,
Map<String, Tag>tags,
String structureVersionId,
String reference,
Map<String, String> parameters
) throws GroundException {
GremlinConnection connection = (GremlinConnection) connectionPointer;
List<DbDataContainer> predicates = new ArrayList<>();
predicates.add(new DbDataContainer("id", GroundType.STRING, id));
Vertex versionVertex = connection.getVertex(predicates);
if (structureVersionId != null) {
StructureVersion structureVersion = this.structureVersionFactory.retrieveFromDatabase(structureVersionId);
RichVersionFactory.checkStructureTags(structureVersion, tags);
}
if (!parameters.isEmpty()) {
Map<String, String> parametersMap = parameters;
for (String key : parametersMap.keySet()) {
String value = parametersMap.get(key);
List<DbDataContainer> insertions = new ArrayList<>();
insertions.add(new DbDataContainer("id", GroundType.STRING, id));
insertions.add(new DbDataContainer("pkey", GroundType.STRING, key));
insertions.add(new DbDataContainer("value", GroundType.STRING, value));
Vertex parameterVertex = connection.addVertex("RichVersionExternalParameter", insertions);
insertions.clear();
connection.addEdge("RichVersionExternalParameterConnection", versionVertex, parameterVertex, insertions);
}
}
if (structureVersionId != null) {
versionVertex.property("structureversion_id", structureVersionId);
}
if (reference != null) {
versionVertex.property("reference", reference);
}
if (!tags.isEmpty()) {
for (String key : tags.keySet()) {
Tag tag = tags.get(key);
List<DbDataContainer> tagInsertion = new ArrayList<>();
tagInsertion.add(new DbDataContainer("id", GroundType.STRING, id));
tagInsertion.add(new DbDataContainer("tkey", GroundType.STRING, key));
tagInsertion.add(new DbDataContainer("value", GroundType.STRING, tag.getValue()));
tagInsertion.add(new DbDataContainer("type", GroundType.STRING, tag.getValueType()));
Vertex tagVertex = connection.addVertex("Tag", tagInsertion);
connection.addEdge("TagConnection", versionVertex, tagVertex, new ArrayList<>());